e11965dca07beb57fce042323711556df5044062,authz/authz-impl/impl/src/java/org/sakaiproject/authz/impl/DbAuthzGroupService.java,DbStorage,remove,#AuthzGroup#,1007
Before Change
// and then the realm and release the lock, all in one transaction
Connection connection = null;
boolean wasCommit = true;
try
{
connection = m_sql.borrowConnection();
wasCommit = connection.getAutoCommit();
connection.setAutoCommit(false);
// delete the role functions, role grants, provider entries
Object fields[] = new Object[1];
fields[0] = caseId(edit.getId());
if ("mysql".equals(sqlService().getVendor()))
{
String statement = "delete SAKAI_REALM_RL_FN from SAKAI_REALM_RL_FN inner join SAKAI_REALM on SAKAI_REALM_RL_FN.REALM_KEY = SAKAI_REALM.REALM_KEY where REALM_ID = ?";
m_sql.dbWrite(connection, statement, fields);
statement = "delete SAKAI_REALM_RL_GR from SAKAI_REALM_RL_GR inner join SAKAI_REALM on SAKAI_REALM_RL_GR.REALM_KEY = SAKAI_REALM.REALM_KEY where REALM_ID = ?";
m_sql.dbWrite(connection, statement, fields);
statement = "delete SAKAI_REALM_PROVIDER from SAKAI_REALM_PROVIDER inner join SAKAI_REALM on SAKAI_REALM_PROVIDER.REALM_KEY = SAKAI_REALM.REALM_KEY where REALM_ID = ?";
m_sql.dbWrite(connection, statement, fields);
statement = "delete SAKAI_REALM_ROLE_DESC from SAKAI_REALM_ROLE_DESC inner join SAKAI_REALM on SAKAI_REALM_ROLE_DESC.REALM_KEY = SAKAI_REALM.REALM_KEY where REALM_ID = ?";
m_sql.dbWrite(connection, statement, fields);
}
else
// oracle and hsql
{
String statement = "delete from SAKAI_REALM_RL_FN where REALM_KEY in (select REALM_KEY from SAKAI_REALM where REALM_ID = ?)";
m_sql.dbWrite(connection, statement, fields);
statement = "delete from SAKAI_REALM_RL_GR where REALM_KEY in (select REALM_KEY from SAKAI_REALM where REALM_ID = ?)";
m_sql.dbWrite(connection, statement, fields);
statement = "delete from SAKAI_REALM_PROVIDER where REALM_KEY in (select REALM_KEY from SAKAI_REALM where REALM_ID = ?)";
m_sql.dbWrite(connection, statement, fields);
statement = "delete from SAKAI_REALM_ROLE_DESC where REALM_KEY in (select REALM_KEY from SAKAI_REALM where REALM_ID = ?)";
m_sql.dbWrite(connection, statement, fields);
After Change
if ("mysql".equals(sqlService().getVendor()))
{
statement = "DELETE SAKAI_REALM_ROLE_DESC FROM SAKAI_REALM_ROLE_DESC INNER JOIN SAKAI_REALM ON SAKAI_REALM_ROLE_DESC.REALM_KEY = SAKAI_REALM.REALM_KEY AND SAKAI_REALM.REALM_ID = ?";
}
else
{
statement = "DELETE FROM SAKAI_REALM_ROLE_DESC WHERE REALM_KEY IN (SELECT REALM_KEY FROM SAKAI_REALM WHERE REALM_ID = ?)";
}
m_sql.dbWrite(statement, fields);
// delete the realm and properties
super.removeResource(null, edit, ((BaseAuthzGroup) edit).getKey());